iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

從0開始的AWS ECS CICD系列 第 22

D22_ECS與CodeDeploy建置-1

  • 分享至 

  • xImage
  •  

這兩天會製作ECS與藍綠部署用的CodeDeploy,
原本是打算使用AWS的介面操作,但發現已經大改版,藍綠部署的建置會有點怪,
所以今天會改為以AWS CLI來進行。
所幸昨天有在本地設定AWS CLI用的組態,可以直接使用。

在開始之前,要請各位再多建一組TargetGroup,
原因是藍綠部署要有兩組TargetGroup。
為什麼現在才說要做呢,因為原本是規劃用AWS介面操作說明,但現在用CLI就只能開始就請大家做了,詳細作法請回顧先前的文章

接下來會有以下三個步驟

  1. 建立ECS叢集(Cluster)
  2. 建立ECS服務(Service)
  3. 建立CodeDeploy用的IAM Role
  4. 建立CodeDeploy
    雖說只有三個步驟,不過要做的事情其實有點多,所以會拆2~3天完成。

首先自己的電腦開一個新的資料夾,這個資料夾會存放幾個json檔案,提供AWS CLI使用。
接著在該資料夾呼叫CMD介面。
使用以下命令建置ECS叢集(Cluster)

aws ecs create-cluster --cluster-name {Name} --region {Region}

{Name}替換為你要的名稱
{Region}替換為你所在的區域

接著回到資料夾建造一個副檔名為ECSDemoService.json的json檔案,
內容如下:

{
    "cluster": "{ClusterName}",
    "serviceName": "{ServiceName}",
    "taskDefinition": "{TaskDefinitionName}",
    "loadBalancers": [
        {
            "targetGroupArn": "{TargetGroup Arn}",
            "containerName": "{Container Name}",
            "containerPort": 80
        }
    ],
    "launchType": "FARGATE",
    "schedulingStrategy": "REPLICA",
    "deploymentController": {
        "type": "CODE_DEPLOY"
    },
    "platformVersion": "LATEST",
    "networkConfiguration": {
       "awsvpcConfiguration": {
          "assignPublicIp": "ENABLED",
          "securityGroups": [ "{SercurityGroup ID}" ],
          "subnets": [ "{Subnet ID}", "{Subnet ID}" ]
       }
    },
    "desiredCount": 1
}

{ClusterName}請環城你剛剛建造的Cluster 名稱
{ServiceName}請換成你想要的ECS Service名稱
{TargetGroup Arn}請換成你先前建造的Arn (請使用有綁定Load balancer的)
https://ithelp.ithome.com.tw/upload/images/20231007/2015261895KJ4fQfR5.jpg

{Container Name}請換成你先前建造的名稱 (可以在Task Definition看到)
https://ithelp.ithome.com.tw/upload/images/20231007/20152618kMk1lcScgM.jpg
https://ithelp.ithome.com.tw/upload/images/20231007/20152618BkqFikm41f.jpg

{SercurityGroup ID}請換成你先前建造SercurityGroup時產生的ID (請在VPC資源中的SercurityGroup查詢)
https://ithelp.ithome.com.tw/upload/images/20231007/201526189y71nrMof5.jpg

{Subnet ID}請換成你先前建造Subnet時產生的ID(請在VPC資源中的Subnet查詢)
https://ithelp.ithome.com.tw/upload/images/20231007/201526187APzOfUMO2.jpg

接著使用以下命令建出ECS Service

aws ecs create-service --cli-input-json file://{ECSDemoService.json} --region {Region}

{ECSDemoService.json}是剛才建立的JSON,請換成你的檔名。
{Region}替換為你所在的區域

接著我們到ECS的頁面,會看到已經有建好一個Custer,
裡面還有一個Service。
但為了節省費用,我們先點選更新服務
https://ithelp.ithome.com.tw/upload/images/20231007/20152618QljcvKSFqY.jpg

找到所需任務,將數量調為0,並更新。
https://ithelp.ithome.com.tw/upload/images/20231007/20152618zZNl2UVchi.jpg


上一篇
D21_推送image至ECR
下一篇
D23_ECS與CodeDeploy建置-2
系列文
從0開始的AWS ECS CICD30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言